1. Technical Field
The present invention relates, generally, to computer systems and their security, and, more particularly, to an operating system on a computer system or network having multiple secured subsystems in which a user may have access. More specifically, the present invention relates to providing a universal security system in an operating system that allows a user to access various subsystems or applications having their own specific security measures whereby the user is allowed to log onto the various subsystems using only a single security password.
2. Description of the Related Art
Many computer applications typically were written for operating systems that did not provide any security. The designers of these applications realized that a security system would be useful for certain clients and so the designers added security systems to their applications. Some of these applications are server programs that allow users to access resources on that server and to run processes on the server on their behalf. Some examples of operating systems without initial security measures are DOS, OS/2, and Macintosh OS.
In the case for OS/2, some examples of processes that allow users access include TELNET, OS/2, LAN SERVER, and NETRUN. TELNET is a program that allows multiple users to log in across a network and access an OS/2 TELNET server as if they were sitting in front of it. TELNET is part of the OS/2 TCP/IP offering. OS/2 LAN SERVER is a program that grants remote users access to resources such as, for example, files, print queues, and serial devices, on an OS/2 LAN SERVER. The NETRUN program allows remote users to execute processes on their behalf on an OS/2 LAN SERVER. Each of these programs has its own security measures.
The security support required by such programs can be split into three areas. The first is user identification authority (UIA), which establishes the association between user identification information and a process or session. This information usually includes the user's credentials, which may describe the user's identity, group memberships, administrative roles, and special privileges. A user authentication services (UAS) is the second security application. A UAS authenticates the user's identity based on information provided by the user, such as, for example, a password, signature, or token. The third security support is an access control authority (ACA), which enforces access to objects based on the credentials with which it is presented.
Since insecure operating systems do not provide these security mechanisms, any application that requires security support has to develop its own UIA, UAS, and ACA. Unfortunately, the trio of UIA, UAS and ACA developed by one application is virtually certain to be incompatible with the trio of UIA, UAS, ACA of an independently developed application. First, the credential syntax and semantics are likely to differ between different, independently developed UIA, ACA pairs. Second, one UIA, ACA pair has no way to retrieve security data created, and associated with a processor session, by an independent UIA, ACA pair.
For example, a user with the user name "LYNN," who logs onto an OS/2 server via TELNET, would not be able to access a resource owned by an OS/2 LAN SERVER on the same network, without an additional logon, because the user is not known as "LYNN" to either the UIA or ACA of the LAN SERVER. The user can only access resources managed by TCP/IP-based servers, since TELNET establishes credentials that only those users can access and understand.
Accordingly, what is needed is a system that allows for multiple different concurrently active security subsystems to coexist on a single operating system, by associating with each process information that different security subsystems can map to their own (different) views of a user's credentials.